package com.shujia.wyh.day24;


import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;

/*
    编码
        把看得懂的变成看不懂的 (加密)
         String -- byte[]
    解码
        把看不懂的变成看得懂的 (解密)
        byte[] -- String

    只要保证将来写入和读取的编码一致就可以了,与存储媒介的编码无关，
    如果要想打开存储媒介能看懂的话，就得使媒介的编码与存储时的编码一致就可以了。

 */
public class StringDemo1 {
    public static void main(String[] args) throws Exception {
        String s = "今晚10点，不见不散！";
        //byte[] getBytes(Charset charset)
        //使用给定的charset将该String编码为字节序列，将结果存储到新的字节数组中。
        byte[] bytes = s.getBytes("UTF-8");
//        System.out.println(Arrays.toString(bytes));
//        //解密
//        //String(byte[] bytes, Charset charset)
//        //构造一个新的String由指定用指定的字节的数组解码charset 。
////        String s1 = new String(bytes, "GBK");
////        System.out.println(s1);
//        String s1 = new String(bytes, "UTF-8");
//        System.out.println(s1);

        FileOutputStream fos = new FileOutputStream("out6.txt");
        fos.write(bytes);

        FileInputStream fis = new FileInputStream("out6.txt");
        byte[] bytes1 = new byte[1024];
        int length = fis.read(bytes1);
        //String(byte[] bytes, int offset, int length, Charset charset)
        //构造一个新的String通过使用指定的指定字节子阵列解码charset 。
        String s2 = new String(bytes1, 0, length, "UTF-8");
        System.out.println(s2);



    }
}
